home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6
/
Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso
/
007a
/
autodl20.zip
/
AUTODIAL.BAS
next >
Wrap
BASIC Source File
|
1992-01-20
|
17KB
|
578 lines
DIM NAM$(500), NUMBER$(500), E$(76)
OPEN "AUTODIAL.CFG" FOR INPUT AS #1
INPUT #1, FILENAM$, BACK, FRONT, FRONTSEL, BACKSEL, BACKTITLE, FRONTTITLE, PATHDIR$, DIALSTR$, HANGUP$
CLOSE #1
LOCATE 1, 1, 0 'Turns cursor invisible
OPEN "AUX" FOR OUTPUT AS #2 'Opens modem file
DEF SEG = &HB800 'Sets Bload def seg
BLOAD "AUTODIAL.BLD", 0 'Bloads intro screen
DELAY 2
COLOR FRONTTITLE, BACKTITLE
ON ERROR GOTO MAINERR
OPEN PATHDIR$ + "\" + LEFT$(FILENAM$, 8) + ".DIR" FOR INPUT AS #1
INPUT #1, NUMBER
FOR A = 1 TO NUMBER
INPUT #1, NAM$(A) 'Loads from default .DIR file
INPUT #1, NUMBER$(A)
NEXT A
CLOSE #1
MAIN:
CLOSE #1, #3
ON ERROR GOTO MAINERR
TEMP$ = ""
COLOR FRONT, BACK
CLS
COLOR 0, 15
PRINT " File Options "; : COLOR 8: PRINT "AutoDialer 2.0"; SPC(34);
LOCATE 2, 1, 0
COLOR FRONTTITLE, BACKTITLE
PRINT "Name"; TAB(60); "Number" 'Prints all numbers on screen
COLOR FRONT, BACK
IF NUMBER < 21 THEN PAGE = NUMBER
IF NUMBER > 20 THEN PAGE = 21
FOR A = 1 TO PAGE
PRINT NAM$(A); TAB(60); NUMBER$(A)
NEXT A
MAIN2:
ENDLINE = PAGE + 2
L = 3
LOCATE L, 1, 0
COLOR FRONTSEL, BACKSEL
PRINT NAM$(1); TAB(60); NUMBER$(1);
KEYREAD:
A$ = INKEY$ 'Reads keyboard
IF A$ = CHR$(0) + CHR$(72) THEN GOTO UP
IF A$ = CHR$(0) + CHR$(80) THEN GOTO DOWN
IF A$ = CHR$(13) THEN GOTO DIAL
IF A$ = CHR$(0) + CHR$(59) THEN GOTO HELP
IF A$ = CHR$(0) + CHR$(63) THEN GOTO EDIT
IF A$ = CHR$(0) + CHR$(33) THEN GOTO FILE
IF A$ = CHR$(0) + CHR$(24) THEN GOTO OPT
IF A$ = CHR$(0) + CHR$(16) THEN GOTO QUIT
IF UCASE$(A$) = "H" THEN GOTO HANGUP
GOTO KEYREAD
UP:
COLOR FRONT, BACK 'Moves highlighter up
LOCATE L, 1
NUM = 21 - LEN(NUMBER$(L - 2))
PRINT NAM$(L - 2); TAB(60); NUMBER$(L - 2); SPC(NUM);
L = L - 1
IF L = 2 THEN L = ENDLINE
LOCATE L, 1: COLOR FRONTSEL, BACKSEL: PRINT NAM$(L - 2); TAB(60); NUMBER$(L - 2)
GOTO KEYREAD
DOWN: 'Moves highlighter down
COLOR FRONT, BACK
LOCATE L, 1: PRINT NAM$(L - 2); TAB(60); NUMBER$(L - 2)
L = L + 1
IF L = ENDLINE + 1 THEN L = 3
LOCATE L, 1
COLOR FRONTSEL, BACKSEL
PRINT NAM$(L - 2); TAB(60); NUMBER$(L - 2)
GOTO KEYREAD
DIAL:
PRINT #2, DIALSTR$ + NUMBER$(L - 2) 'Dials number
'This part scans and stores characters where the dialing window will be.
FOR X = 12 TO 14: FOR Y = 20 TO 60
A$(X - 11) = A$(X - 11) + CHR$(SCREEN(X, Y))
NEXT Y: NEXT X
COLOR 31, 4 'Displays dialing window,
LOCATE 12, 20
PRINT CHR$(201); STRING$(38, 205); CHR$(187)
LOCATE 13, 20
PRINT CHR$(186); " Pick up the phone"; TAB(59); CHR$(186)
LOCATE 14, 20
PRINT CHR$(200); STRING$(38, 205); CHR$(188)
DELAY 2 'Waits two seconds,
LOCATE 12, 20
COLOR FRONT, BACK 'Restores text where window was,
FOR X = 12 TO 14
LOCATE X, 20
PRINT A$(X - 11)
NEXT X
ERASE A$
DELAY 1 'Waits another second,
PRINT #2, HANGUP$ 'and hangs up the phone.
GOTO KEYREAD
HANGUP: 'Prints hangup string to modem.
PRINT #2, HANGUP$
GOTO KEYREAD
HELP:
CALL HELP 'Calls procedure Help
GOTO MAIN
EDIT:
COLOR 15, 9
CLS
PRINT " AutoDialer Phone List Editor"
COLOR FRONT
FOR A = 1 TO NUMBER
COLOR 14
PRINT "("; A; ")";
COLOR 7
PRINT NAM$(A); TAB(60); NUMBER$(A)
NEXT A
COLOR 12
PRINT "Press 'A' to add, 'D' to delete, 'I' to insert, 'E' to edit."
IDO:
A$ = UCASE$(INPUT$(1))
IF A$ = "A" THEN GOSUB EDITADD
IF A$ = "D" THEN GOSUB EDITDEL
IF A$ = "I" THEN GOSUB EDITINS
IF A$ = "E" THEN GOSUB EDITEDT
IF A$ = CHR$(27) THEN GOTO MAIN
GOTO IDO
EDITADD:
COLOR 15
INPUT "Name"; NAM$(NUMBER + 1)
INPUT "Number"; NUMBER$(NUMBER + 1)
NUMBER = NUMBER + 1
GOTO EDIT
EDITDEL:
INPUT "What number do you want to delete"; NUM2DEL
FOR A = NUM2DEL TO NUMBER
NAM$(A) = NAM$(A + 1)
NUMBER$(A) = NUMBER$(A + 1)
NEXT A
NUMBER = NUMBER - 1
GOTO EDIT
EDITINS:
COLOR 15
INPUT "Where do you want to insert"; WHERE2INS
FOR A = NUMBER TO WHERE2INS STEP -1
NAM$(A + 1) = NAM$(A)
NUMBER$(A + 1) = NUMBER$(A)
NEXT A
INPUT "Name"; NAM$(WHERE2INS)
INPUT "Number"; NUMBER$(WHERE2INS)
NUMBER = NUMBER + 1
GOTO EDIT
EDITEDT:
COLOR 15
INPUT "What number do you want to edit"; TOEDIT
COLOR 14
PRINT "Press enter to leave the same."
COLOR 15
INPUT "Name"; A$
IF NOT A$ = "" THEN NAM$(TOEDIT) = A$
INPUT "Number"; A$
IF NOT A$ = "" THEN NUMBER$(TOEDIT) = A$
GOTO EDIT
FILE: 'Displays file menu
COLOR 7, 0: LOCATE 1, 4
PRINT " File "
LOCATE 2, 2: COLOR 0, 15: PRINT CHR$(218); STRING$(15, 196); CHR$(191)
LOCATE 3, 2: PRINT CHR$(179); : COLOR 15: PRINT "S"; : COLOR 0: PRINT "ave Setup File"; CHR$(179)
LOCATE 4, 2: PRINT CHR$(179); : COLOR 15: PRINT "P"; : COLOR 0: PRINT "rint Directory"; CHR$(179)
LOCATE 5, 2: PRINT CHR$(179); : COLOR 15: PRINT "L"; : COLOR 0: PRINT "oad Directory "; CHR$(179)
LOCATE 6, 2: PRINT CHR$(179); : PRINT "Save "; : COLOR 15: PRINT "D"; : COLOR 0: PRINT "irectory "; CHR$(179)
LOCATE 7, 2: PRINT CHR$(179); : COLOR 15: PRINT "N"; : COLOR 0: PRINT "ew Directory "; CHR$(179)
LOCATE 8, 2: PRINT CHR$(195); STRING$(15, 196); CHR$(180)
LOCATE 9, 2: PRINT CHR$(179);
COLOR 15
PRINT "Q";
COLOR 0
PRINT "uit Alt+Q"; CHR$(179)
LOCATE 10, 2
PRINT CHR$(192); STRING$(15, 196); CHR$(217)
GOSUB SHADOWA
MENUKEYFIL:
A$ = UCASE$(INKEY$) 'Reads capitalized keyboard input
IF A$ = "D" THEN GOTO SAVEDIR
IF A$ = "L" THEN GOTO LOADDIR
IF A$ = "P" THEN GOTO PRINDIR
IF A$ = "S" THEN GOTO SAVESET
IF A$ = "N" THEN GOTO NEWDIR
IF A$ = "Q" THEN GOTO QUIT
IF A$ = CHR$(27) THEN GOTO MAIN
GOTO MENUKEYFIL
SAVEDIR:
LOCATE 15, 40 'Draws the box
COLOR 15, 3
PRINT CHR$(201); STRING$(18, 205); CHR$(187)
LOCATE 16, 40: PRINT CHR$(186); "Filename: "; TAB(59); CHR$(186)
LOCATE 17, 40: PRINT CHR$(200); STRING$(18, 205); CHR$(188)
LOCATE 16, 51, 1
'Gets input for filename, max 8 chars
FOR A = 1 TO 8
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 51 THEN
A = A - 1
GOTO 2
END IF
TEMP$ = LEFT$(TEMP$, (LEN(TEMP$) - 1))
LOCATE 16, (POS(0) - 1), 1
PRINT " ";
LOCATE 16, (POS(0) - 1)
A = A - 1
GOTO 2
END IF
IF A$ = CHR$(13) THEN GOTO WRITEDIR
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
2 NEXT A
WRITEDIR:
OPEN PATHDIR$ + "\" + LEFT$(TEMP$, 8) + ".DIR" FOR OUTPUT AS #3
PRINT #3, NUMBER
FOR A = 1 TO NUMBER: PRINT #3, NAM$(A); ","; NUMBER$(A): NEXT A
CLOSE #3: GOTO MAIN
LOADDIR:
LOCATE 15, 30
COLOR 15, 3
PRINT CHR$(201); STRING$(18, 205); CHR$(187)
LOCATE 16, 30
PRINT CHR$(186); "Filename: "; TAB(49); CHR$(186)
LOCATE 17, 30
PRINT CHR$(200); STRING$(18, 205); CHR$(188)
LOCATE 16, 41
FOR A = 1 TO 8
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 41 THEN
A = A - 1
GOTO 8
END IF
TEMP$ = LEFT$(TEMP$, (LEN(TEMP$) - 1))
LOCATE 16, (POS(0) - 1), 1
PRINT " ";
LOCATE 16, (POS(0) - 1)
A = A - 1
GOTO 8
END IF
IF A$ = CHR$(13) THEN GOTO READDIR
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
8 NEXT A
READDIR:
ON ERROR GOTO DIRLOADER
OPEN PATHDIR$ + "\" + LEFT$(TEMP$, 8) + ".DIR" FOR INPUT AS #1
INPUT #1, NUMBER
FOR A = 1 TO NUMBER
INPUT #1, NAM$(A)
INPUT #1, NUMBER$(A)
NEXT A
GOTO MAIN
DIRLOADER:
A = ERR
IF A = 53 THEN
LOCATE 16, 41
PRINT SPACE$(8)
LOCATE 16, 31: COLOR 4: PRINT "File not found"
BEEP
DELAY 2
END IF
RESUME MAIN
PRINDIR:
ON ERROR GOTO PRINTERR
LPRINT "Name"; TAB(60); "Number"
FOR A = 1 TO NUMBER
LPRINT NAM$(A); TAB(60); NUMBER$(A)
NEXT A
GOTO MAIN
PRINTERR:
IF ERR = 25 THEN GOTO WINERR ELSE RESUME MAIN
WINERR:
LOCATE 10, 15
COLOR 15, 4
LOCATE 15, 30
PRINT CHR$(201); STRING$(18, 205); CHR$(187)
LOCATE 16, 30: PRINT CHR$(186); "Printer not ready"; TAB(49); CHR$(186)
LOCATE 17, 30: PRINT CHR$(200); STRING$(18, 205); CHR$(188)
BEEP
DO: LOOP UNTIL INKEY$ <> ""
RESUME MAIN
SAVESET:
CLOSE #1
OPEN "AUTODIAL.CFG" FOR OUTPUT AS #1
PRINT #1, FILENAM$
PRINT #1, BACK: PRINT #1, FRONT: PRINT #1, FRONTSEL: PRINT #1, BACKSEL: PRINT #1, BACKTITLE: PRINT #1, FRONTTITLE
PRINT #1, PATHDIR$: PRINT #1, DIALSTR$: PRINT #1, HANGUP$
GOTO MAIN
NEWDIR:
ERASE NAM$, NUMBER$
NUMBER = 0
GOTO MAIN
OPT: 'Displays options menu
LOCATE 1, 17
COLOR 7, 0: PRINT " Options ": COLOR 0, 15
LOCATE 2, 15: PRINT CHR$(218); STRING$(15, 196); CHR$(191)
LOCATE 3, 15: PRINT CHR$(179); : COLOR 15: PRINT "D"; : COLOR 0: PRINT "efault Dir "; CHR$(179)
LOCATE 4, 15: PRINT CHR$(179); : COLOR 15: PRINT "C"; : COLOR 0: PRINT "olors... "; CHR$(179)
LOCATE 5, 15: PRINT CHR$(179); : COLOR 15: PRINT "P"; : COLOR 0: PRINT "hone list "; CHR$(179)
LOCATE 6, 15: PRINT CHR$(179); : COLOR 15: PRINT "M"; : COLOR 0: PRINT "odem Strings "; CHR$(179)
LOCATE 7, 15: PRINT CHR$(192); STRING$(15, 196); CHR$(217)
GOSUB SHADOWB
MENUKEYOPT:
A$ = UCASE$(INKEY$)
IF A$ = "D" THEN GOTO DIRDEF
IF A$ = "C" THEN GOTO COLORS
IF A$ = "P" THEN GOTO LSTDEF
IF A$ = "M" THEN GOTO MODEM
IF A$ = CHR$(27) THEN GOTO MAIN
GOTO MENUKEYOPT
DIRDEF:
COLOR 15, 3
LOCATE 15, 44
PRINT CHR$(201); CHR$(205);
COLOR 14: PRINT "Default directory for list files"; : COLOR 15: PRINT CHR$(205); CHR$(187)
LOCATE 16, 44: PRINT CHR$(186); "Pathname: "; TAB(79); CHR$(186)
LOCATE 17, 44: PRINT CHR$(200); STRING$(34, 205); CHR$(188)
LOCATE 16, 55, 1
FOR A = 1 TO 35
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 55 THEN
A = A - 1
GOTO 1
END IF
TEMP$ = LEFT$(TEMP$, (LEN(TEMP$) - 1))
LOCATE 16, (POS(0) - 1), 1
PRINT " ";
LOCATE 16, (POS(0) - 1)
A = A - 1
GOTO 1
END IF
IF A$ = CHR$(13) THEN GOTO 80
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
1 NEXT A
80 PATHDIR$ = TEMP$
GOTO MAIN
SHADOWA:
COLOR 8, 0
FOR A = 3 TO 11
LOCATE A, 19: PRINT CHR$(SCREEN(A, 19))
LOCATE A, 20: PRINT CHR$(SCREEN(A, 20))
NEXT A
FOR A = 3 TO 19
LOCATE 11, A: PRINT CHR$(SCREEN(11, A))
NEXT A
RETURN
SHADOWB:
COLOR 8, 0
FOR A = 3 TO 8
LOCATE A, 32: PRINT CHR$(SCREEN(A, 32))
LOCATE A, 33: PRINT CHR$(SCREEN(A, 33))
NEXT A
FOR A = 16 TO 32
LOCATE 8, A
PRINT CHR$(SCREEN(8, A))
NEXT A
RETURN
COLORS:
CALL COLORS: GOTO MAIN
LSTDEF:
CALL LSTDEF
GOTO MAIN
MODEM:
CALL MODEM: GOTO MAIN
MAINERR:
OPEN "AUTODIAL.DAT" FOR INPUT AS #4
FOR A = 1 TO 76
INPUT #4, E$(A)
NEXT A
CLOSE #4
COLOR 15, 4
LOCATE 15, 20: PRINT CHR$(201); STRING$(38, 205); CHR$(187)
LOCATE 16, 20: PRINT CHR$(186); " Error: "; E$(ERR); TAB(60); CHR$(186)
LOCATE 17, 20: PRINT CHR$(200); STRING$(38, 205); CHR$(188)
BEEP: DELAY 1: RESUME MAIN
QUIT:
COLOR 11, 0
CLS : PRINT "AutoDialer v"; : COLOR 3: PRINT "2.0 ";
COLOR 7: PRINT "Designed by Josh Warner-Burke"
END
SUB COLORS
SHARED BACK, FRONT, FRONTSEL, BACKSEL, FRONTTITLE, BACKTITLE, PATHDIR$, DIALSTR$, HANGUP$
X = 0
COLOR 15, 3
LOCATE 12, 25: PRINT CHR$(218); STRING$(23, 196); CHR$(191)
LOCATE 13, 25: PRINT CHR$(179); TAB(49); CHR$(179)
LOCATE 14, 25: PRINT CHR$(179); TAB(49); CHR$(179)
LOCATE 15, 25: PRINT CHR$(179); TAB(49); CHR$(179)
LOCATE 16, 25: PRINT CHR$(192); STRING$(23, 196); CHR$(217)
COLORS2:
COLOR 15, 3: LOCATE 13, 26: PRINT "Normal Text"; TAB(44);
COLOR FRONT, BACK: PRINT "Test"
COLOR 15, 3: LOCATE 14, 26: PRINT "Selected"; TAB(44);
COLOR FRONTSEL, BACKSEL: PRINT "Test"
COLOR 15, 3: LOCATE 15, 26: PRINT "Title"; TAB(44);
COLOR FRONTTITLE, BACKTITLE: PRINT "Test"
IF X = 2 THEN GOTO COLORS4
IF X = 3 THEN GOTO COLORS5
COLORS3:
A$ = INKEY$
IF A$ = CHR$(0) + CHR$(72) THEN BACK = BACK - 1
IF A$ = CHR$(0) + CHR$(75) THEN FRONT = FRONT - 1
IF A$ = CHR$(0) + CHR$(77) THEN FRONT = FRONT + 1
IF A$ = CHR$(0) + CHR$(80) THEN BACK = BACK + 1
IF A$ = CHR$(13) THEN GOTO COLORS4
IF FRONT = 0 THEN FRONT = 1
IF FRONT = 16 THEN FRONT = 15
IF BACK = 0 THEN BACK = 1
IF BACK = 10 THEN BACK = 9
GOTO COLORS2
COLORS4:
A$ = INKEY$
IF A$ = CHR$(0) + CHR$(72) THEN BACKSEL = BACKSEL - 1
IF A$ = CHR$(0) + CHR$(75) THEN FRONTSEL = FRONTSEL - 1
IF A$ = CHR$(0) + CHR$(77) THEN FRONTSEL = FRONTSEL + 1
IF A$ = CHR$(0) + CHR$(80) THEN BACKSEL = BACKSEL + 1
IF A$ = CHR$(13) THEN GOTO COLORS5
IF FRONTSEL = 0 THEN FRONTSEL = 1
IF FRONTSEL = 16 THEN FRONTSEL = 15
IF BACKSEL = 0 THEN BACKSEL = 1
IF BACKSEL = 10 THEN BACKSEL = 9
X = 2
GOTO COLORS2
COLORS5:
A$ = INKEY$
IF A$ = CHR$(0) + CHR$(72) THEN BACKTITLE = BACKTITLE - 1
IF A$ = CHR$(0) + CHR$(75) THEN FRONTTITLE = FRONTTITLE - 1
IF A$ = CHR$(0) + CHR$(77) THEN FRONTTITLE = FRONTTITLE + 1
IF A$ = CHR$(0) + CHR$(80) THEN BACKTITLE = BACKTITLE + 1
IF A$ = CHR$(13) THEN GOTO 10
IF FRONTTITLE = 0 THEN FRONTTITLE = 1
IF FRONTTITLE = 16 THEN FRONTTITLE = 15
IF BACKTITLE = 0 THEN BACKTITLE = 1
IF BACKTITLE = 10 THEN BACKTITLE = 9
X = 3: GOTO COLORS2
10 END SUB
SUB HELP
LOCATE 6, 1
COLOR 15, 2
PRINT CHR$(201); STRING$(28, 205); CHR$(187)
PRINT CHR$(186); " Auto Dialer Help"; TAB(30); CHR$(186)
PRINT CHR$(186); "Use the up and down arrow"; TAB(30); CHR$(186)
PRINT CHR$(186); "to select the number you"; TAB(30); CHR$(186)
PRINT CHR$(186); "want to dial. To dial it,"; TAB(30); CHR$(186)
PRINT CHR$(186); "press enter. Press F5 to"; TAB(30); CHR$(186)
PRINT CHR$(186); "bring up the dialing list"; TAB(30); CHR$(186)
PRINT CHR$(186); "editor. To access the menus"; TAB(30); CHR$(186)
PRINT CHR$(186); "at the top of the screen,"; TAB(30); CHR$(186)
PRINT CHR$(186); "press alt and the letter"; TAB(30); CHR$(186)
PRINT CHR$(186); "of the menu you want to"; TAB(30); CHR$(186)
PRINT CHR$(186); "pull down. To exit, press"; TAB(30); CHR$(186)
PRINT CHR$(186); "Alt-Q from the main screen."; TAB(30); CHR$(186)
PRINT CHR$(186); "Press any key to continue."; TAB(30); CHR$(186)
PRINT CHR$(200); STRING$(28, 205); CHR$(188)
DO
LOOP UNTIL INKEY$ <> ""
LOCATE 6
COLOR 15, 9
END SUB
SUB LSTDEF
SHARED BACK, FRONT, FRONTSEL, BACKSEL, FRONTTITLE, BACKTITLE, PATHDIR$, DIALSTR$, HANGUP$
TEMP$ = ""
LOCATE 15, 60
COLOR 15, 3
PRINT CHR$(201); STRING$(18, 205); CHR$(187)
LOCATE 16, 60
PRINT CHR$(186); "Filename: "; TAB(79); CHR$(186)
LOCATE 17, 60
PRINT CHR$(200); STRING$(18, 205); CHR$(188)
LOCATE 16, 71
FOR A = 1 TO 8
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 55 THEN
A = A - 1
GOTO 3
END IF
LOCATE 16, (POS(0) - 1), 1
PRINT " ";
LOCATE 16, (POS(0) - 1)
A = A - 1
GOTO 3
END IF
IF A$ = CHR$(0) + CHR$(75) THEN
IF POS(0) = 55 THEN
A = A - 1
GOTO 3
END IF
LOCATE 16, (POS(0) - 1), 1
A = A - 1
GOTO 3
END IF
IF A$ = CHR$(0) + CHR$(77) THEN
IF POS(0) = 78 THEN
A = A - 1
GOTO 3
END IF
LOCATE 16, (POS(0) + 1), 1
A = A - 1
GOTO 3
END IF
IF A$ = CHR$(13) THEN GOTO 30
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
3 NEXT A
30 FILENAM$ = TEMP$
END SUB
SUB MODEM
SHARED BACK, FRONT, FRONTSEL, BACKSEL, FRONTTITLE, BACKTITLE, PATHDIR$, DIALSTR$, HANGUP$
TEMPA$ = DIALSTR$
TEMPB$ = HANGUP$
DIALSTR$ = ""
HANGUP$ = ""
COLOR 15, 3
LOCATE 12, 25
PRINT CHR$(218); STRING$(33, 196); CHR$(191)
LOCATE 13, 25
PRINT CHR$(179); TAB(59); CHR$(179)
LOCATE 14, 25
PRINT CHR$(179); TAB(59); CHR$(179)
LOCATE 15, 25
PRINT CHR$(192); STRING$(33, 196); CHR$(217)
LOCATE 13, 26
PRINT "Dialing string: ";
LOCATE 14, 26
PRINT "Hang up string: ";
LOCATE 13, 42, 1
FOR A = 42 TO 59
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 42 THEN
A = A - 1
GOTO 60
END IF
TEMP$ = LEFT$(TEMP$, (LEN(TEMP$) - 1))
LOCATE 13, (POS(0) - 1), 1
PRINT " ";
LOCATE 13, (POS(0) - 1)
A = A - 1
GOTO 60
END IF
IF A$ = CHR$(13) THEN GOTO MODEM2
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
60 NEXT A
DIALSTR$ = TEMP$
MODEM2:
TEMP$ = ""
LOCATE 14, 42, 1
FOR A = 42 TO 59
A$ = INPUT$(1)
IF A$ = CHR$(8) THEN
IF POS(0) = 42 THEN
A = A - 1
GOTO 70
END IF
TEMP$ = LEFT$(TEMP$, (LEN(TEMP$) - 1))
LOCATE 13, (POS(0) - 1), 1
PRINT " ";
LOCATE 13, (POS(0) - 1)
A = A - 1
GOTO 70
END IF
IF A$ = CHR$(13) THEN GOTO 20
PRINT UCASE$(A$);
TEMP$ = TEMP$ + A$
70 NEXT A
20 HANGUP$ = TEMP$
40 END SUB